home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
basic
/
pbtool.exe
/
PBLIB.BAS
< prev
next >
Wrap
BASIC Source File
|
1991-11-18
|
3KB
|
111 lines
'----------------------------------------------------------
' PROGRAM: PBLIB.BAS PROGRAMMER: A. KELLETT
' DATE-WRITTEN: 10/18/91
' USING POWER BASIC V2.10A
'
' THESE ARE SMALL, USEFUL ROUTINES YOU CAN PLUG INTO YOUR
' OWN CODE. SHOULD RUN WITH TURBO OR POWERBASIC.
' SPECIAL THANKS TO MIKE P. FOR SUGGESTIONS...
' VERSION: 0.20 LAST UPDATED: 11/18/91
'----------------------------------------------------------
'-------------- DEMO CODE FOLLOWING -----------------------
CLS
LOCATE 5,5:PRINT "PRESS ANY KEY TO CONTINUE [NO PROMPT]"
CALL PRESSANYKEY
CLS
CALL PRESSANYKEY2(5,5,"PRESS IT, DUDE")
CLS
LOCATE 5,5:PRINT "PRESS THE B KEY [NO PROMPT]"
CALL PRESSAKEY("B")
CLS
CALL PRESSAKEY2(5,5,"X","PRESS THE X KEY TO CONTINUE")
CLS
CALL BLINKMSG(5,10,.6,.3,"WAITING FOR A KEYSTROKE")
CLS
LOCATE 10,20:PRINT "PAUSE FOR 5 SEC. STATION IDENTIFICATION..."
CALL WAITAWHILE(5)
CLS
CALL CENTER("Here is a fully centered message.",12)
END
'
' PAUSES UNTIL A KEY IS PRESSED, NO MESSAGES ETC.
'----------------------------------------------------------
SUB PRESSANYKEY
KY$ = ""
DO WHILE KY$ = ""
KY$ = INKEY$
WEND
END SUB
'
' CALL PRESSANYKEY2(1, 15, "STRIKE A KEY, DUDE") -> PAUSES W/MESSAGE
'----------------------------------------------------------
SUB PRESSANYKEY2(ROW%, COLUMN%, MSG$)
KY$ = ""
LOCATE ROW%, COLUMN%:PRINT MSG$
DO WHILE KY$ = ""
KY$ = INKEY$
WEND
END SUB
'
' CALL PRESSAKEY("A") or CALL PRESSAKEY(CHR$(65))
'----------------------------------------------------------
SUB PRESSAKEY (KEYNEEDED$)
KY$ = ""
DO WHILE KY$ <> KEYNEEDED$
KY$ = INKEY$
WEND
END SUB
'
' CALL PRESSAKEY2(1, 15, "A", "PRESS THE A KEY")
'----------------------------------------------------------
SUB PRESSAKEY2 (ROW%, COLUMN%, KEYNEEDED$, MSG$)
LOCATE ROW%, COLUMN%:PRINT MSG$
KY$ = ""
DO WHILE KY$ <> KEYNEEDED$
KY$ = INKEY$
WEND
END SUB
'
' CALL BLINKMSG(1, 15, .8, .4, "HELLO ALL YOU MOMS & DADS)
'----------------------------------------------------------
SUB BLINKMSG (ROW%, COLUMN%, TIME1, TIME2, MSG$)
' NOTE: WHEN THE USER PRESSES A KEY, IT WILL STILL CYCLE
' THRU A DISPLAY/BLANK MODE WITH PAUSES <<BEFORE>> IT
' KICKS OUT OF THE LOOP. THIS IS ESPECIALLY NOTICEABLE
' IF EITHER DELAY (TIME1 OR TIME2) IS VERY LARGE, > 1.0.
LOCAL XLEN%
XLEN% = LEN(MSG$)
KY$ = ""
DO WHILE KY$ = ""
KY$ = INKEY$
LOCATE ROW%, COLUMN%:PRINT MSG$;:
DELAY TIME1
LOCATE ROW%, COLUMN%:PRINT STRING$(XLEN%, " ")
DELAY TIME2
WEND
END SUB
'
' CALL WAITAWHILE(10) -->** PAUSES 10 SECONDS **
'----------------------------------------------------------
SUB WAITAWHILE (WAITTIME%)
PAUSE = TIMER + WAITTIME%
WHILE TIMER < PAUSE
'** DO NOTHING **
WEND
END SUB
'
' CALL CENTER("Text to display", linetodisplayon%)
'----------------------------------------------------------
SUB CENTER (TEXT$, DISPLAYLINE%)
IF LEN(TEXT$) < 80 THEN
X% = LEN(TEXT$) / 2
X% = 40 - X%
LOCATE DISPLAYLINE%, X%:PRINT TEXT$;
END IF
END SUB